package com.order.itemcategoryproject.service;

import com.order.itemcategoryproject.pojo.DBlOrderHdOnline;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.sql.Date;
import java.util.List;

@Repository
public interface DBlOrderHdOnlineService {

    /**
     * 添加订单信息
     *
     * @param DBlOrderHdOnline
     * @return
     */
    int insertOrderInfo(DBlOrderHdOnline DBlOrderHdOnline);

    /**
     * 根据制单人编号获取该制单人下的订单
     *
     * @param staffId
     * @return
     */
    List<DBlOrderHdOnline> getOrderInfoByStaffId(String staffId);

    /**
     * 通过订单编号获取订单信息
     *
     * @param orderId
     * @return
     */
    DBlOrderHdOnline getOrderinfoByOrderId(String orderId);


    /**
     * 通过订单编号更新订单状态为已完成
     *
     * @param orderId
     * @return
     */
    int updateOrderStatusByOrderId(String orderId);


    /**
     * 通过订单编号删除订单信息
     *
     * @param orderId
     * @return
     */
    int deleteOrderInfoByOrderId(String orderId);

    /**
     * 根据订单编号逻辑删除订单信息
     * @param orderId
     * @return
     */
    int updateOrderByOrderId(String orderId);

    /**
     * 通过订单编号更新订单内容
     *
     * @param orderId
     * @return
     */
    int updateRemarkContentByOrderId(String orderId, String content);

    int updateOrderInfoByOrderId(String orderId, int totalNum, double totalPrice, double totalVolume, double totalWeight);

    // 根据客户编号获取当前客户下最新创建的订单
    DBlOrderHdOnline selectNewOrderInfoDesc(String createStaffId);

    // 根据客户名称与订单编号更新当前订单预计付款时间
    int updateEsPaymentTimeByOrderIdAndCreateStaffId(String orderId, String createStaffId, Date esPaymentDate);

    // 根据订单编号更新该订单总数量和总价格
    int updateOrderTotalNumAndTotalPrice(String orderId);


}
